package cn.tedu.api;

import java.util.Arrays;
import java.util.Scanner;

//测试 String工具类
public class Test2_String {
    public static void main(String[] args) {
        //1 创建String对象---本质上就是维护了一个char[]
        //TODO1 触发String(char[] value)构造方法
        char[]c = {'h','e',' ','l','l','o'};
       String s = new String(c);
       String s2 = "hel lo";//简写形式--高效，
        // s2存放在常量池里--高效--- 相同数据只存一次
        String s3 = "hel lo";
        System.out.println(s2==s3);//true
       //TODO2 常用方法测试
//        char charAt(int index)
        System.out.println(s.charAt(3));//返回指定索引处的 char值
//        String concat(String str)
        System.out.println(s.concat("World"));//拼接字符
//        boolean contains(String s)
        System.out.println(s.contains("ojbk"));//判断是否包含指定的char值序列
//        boolean endwith(String suffix)
        System.out.println(s.endsWith("o"));//判断是否以指定的后缀结束
//        boolean equals(Object anObject)
        System.out.println(s.equals("hello"));//将次字符串与指定的对象比较
//
//        int hashCode()
        System.out.println(s.hashCode());//获取字符串的哈希码值
//        int indexOf(String str)
        System.out.println(s.indexOf("l"));//获取指定数据第一次出现的索引值
//        boolean isEmpty()
        System.out.println(s.isEmpty());//判断是否为空
//        int lastIndexOf(String str)
        System.out.println(s.lastIndexOf("o"));//获取指定数据最后一次出现的索引值
//        int length()
        System.out.println(s.length());//返回次字符串的长度
//        String replace(char oldChar,char newChar)
        System.out.println(s.replace('l','p'));//替换字符
//        boolean startwith(String prefix)
        System.out.println(s.startsWith("h"));//判断是否以指定的前缀开始
//        String substring(int beginIndex)
        System.out.println(s.substring(2));//从2开始向后截取
//          String substring(int beginIndex,int endIndex)
        System.out.println(s.substring(2,4));//从2开始到4结束，含头不含尾
//        String toLowerCase()
        System.out.println(s.toLowerCase());//全转小写
//        String toUperCase()
        System.out.println(s.toUpperCase());//全转大写
//        String trim()
        System.out.println(s.trim());//去除空格(返回字符串的副本，忽略签到空白和尾部空白)
//        byte[] getByte[]
        byte []bs = s.getBytes();//把s里的字符转换成数字存入byte[]
        System.out.println(Arrays.toString(bs));
//        String[] split(String regex)
        String[] ss = s.split("e");//按照指定规则切割字符串
        System.out.println(Arrays.toString(ss));
//        for(int i=0;i<ss.length;i++){
//            System.out.println(ss[i]+" ");
//        }
//        char[] toCharArray()
        char[]cs = s.toCharArray();//把s里的数据存在char数组里
        System.out.println(cs);
//        static String valueOf(int i)
        String num = s.valueOf(3);//把其他类型转成String类型
        System.out.println(num+1);
        //TODO练习
        //需求：接收用户输入的一串数据，并打印每个数据。
        String str = new Scanner(System.in).nextLine();
        for (int i = 0; i <str.length() ; i++) {
            char data = str.charAt(i);
            System.out.println(data);
        }
    }
}

